Social networking services are online services that execute on various computing systems and can be accessed by users to communicate with each other, share their interests, upload images and videos, create new relationships, etc. The computing systems can operate in a distributed computing environment with data being distributed among one or more server clusters that are each located in one of multiple data centers. A server cluster is a grouping of server computing devices (“servers”).
The servers can correspond to one or more access points on a network, with each access point including one or more servers or devices functioning as proxy nodes. The access points and the proxy nodes can be utilized as part of an architecture, a protocol, or a combination thereof for exchanging information between computing devices over the network.
Operators of social networks typically employ multiple interconnected data centers, e.g., so that a data center that is geographically proximate to a social network user can respond to the user's requests. This mode of operation can minimize network delays.
However, during periods of high demand, e.g., from a particular geographic area, one or more nearby data centers may become heavily used and so may not provide responses in a timely manner. To avoid these types of delays, operators of social networks employ various load balancing techniques.
When load balancing is employed, a request to a datacenter may be redirected to a different data center that also stores the requested content, even if that other datacenter is farther away.
Some social networks host “live” events. These live events can involve interactions with celebrities. In such cases, the “load” experienced by some datacenters can increase much more rapidly than typical load balancers can handle. This can be because by the time a client request is satisfied by a datacenter the load balancer selects, the selected datacenter may become too congested to respond to the request in a timely manner. As such, there is a need to balance loads based on events occurring in real-time to promote optimum operation of the computing system.
The figures depict various embodiments of this disclosure for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of embodiments described herein.